package org.Webgatherer.ExperimentalLabs.DependencyInjection;
import com.google.inject.AbstractModule;
import com.google.inject.Singleton;
import org.Webgatherer.CoreEngine.Core.ThreadCommunication.ThreadCommunication;
import org.Webgatherer.CoreEngine.Core.ThreadCommunication.ThreadCommunicationImpl;
import org.Webgatherer.CoreEngine.Core.Threadable.WebGather.PageRetrieverThreadManager;
import org.Webgatherer.CoreEngine.lib.WebDriverFactory;
import org.Webgatherer.ExperimentalLabs.EmailExtraction.PageRetrieverThreadManagerEmailExtraction;
import org.Webgatherer.ExperimentalLabs.EmailExtraction.ThreadRetrievePageEmailExtraction;
import org.Webgatherer.ExperimentalLabs.HtmlProcessing.HtmlParser;
import org.Webgatherer.ExperimentalLabs.HtmlProcessing.HtmlParserImpl;
import org.Webgatherer.ExperimentalLabs.Mail.EmailSendReceive;
import org.Webgatherer.ExperimentalLabs.Scraper.Core.PageRetrieverThreadManagerScraper;
import org.Webgatherer.ExperimentalLabs.Scraper.Generic.ScraperGeneric;
import org.Webgatherer.ExperimentalLabs.Scraper.Google.GoogleExtractUrls;
import org.Webgatherer.ExperimentalLabs.Scraper.Indeed.ScraperIndeed;
import org.Webgatherer.ExperimentalLabs.Scraper.Indeed.ThreadRetrievePageIndeed;
import org.Webgatherer.Persistence.InputOutput.PersistenceImpl_WriteToFile;
import org.Webgatherer.Persistence.InputOutput.WriterOutputQueueToFile;
import org.Webgatherer.Utility.RandomSelector;
import org.Webgatherer.Utility.ReadFiles;
import org.Webgatherer.WorkflowExample.Workflows.Base.DataInterpetor.EmailExtractor;
/**
* @author Rick Dane
*/
public class DependencyBindingModule extends AbstractModule {
@Override
protected void configure() {
bind(HtmlParser.class).to(HtmlParserImpl.class).in(Singleton.class);
bind(WebDriverFactory.class).in(Singleton.class);
bind(PageRetrieverThreadManager.class).in(Singleton.class);
bind(PageRetrieverThreadManagerScraper.class).in(Singleton.class);
bind(ThreadCommunication.class).to(ThreadCommunicationImpl.class);
bind(EmailExtractor.class);
bind(ThreadRetrievePageIndeed.class);
bind(EmailSendReceive.class);
bind(ReadFiles.class);
bind(PersistenceImpl_WriteToFile.class);
bind(RandomSelector.class).in(Singleton.class);
bind(GoogleExtractUrls.class);
bind(ThreadRetrievePageEmailExtraction.class);
bind(PageRetrieverThreadManagerEmailExtraction.class).in(Singleton.class);
bind(WriterOutputQueueToFile.class).in(Singleton.class);
bind(ScraperIndeed.class);
bind(ScraperGeneric.class);
}
}